home *** CD-ROM | disk | FTP | other *** search
-
-
-
- 1. CP/M-86 KERMIT
-
- Authors: Bill Catchings, Columbia University; Ron Blanford, University of
- Washington; Richard Garland, Columbia University.
- Language: Digital Research ASM86
- Version: 2.9
- Date: December 1984
- Documentation:
- Frank da Cruz, Columbia
-
- This version of KERMIT is designed to support any CP/M-86 system. So far it
- supports the DEC Rainbow-100 and the NEC Advanced Personal Computer (APC). It
- is very similar to CP/M-80 and MS DOS KERMIT.
-
-
- CP/M-86 KERMIT-86 Capabilities At A Glance:
-
- Local operation: Yes
- Remote operation: No
- Transfers text files: Yes
- Transfers binary files: Yes
- Wildcard send: Yes
- ^X/^Y interruption: Yes
- Filename collision avoidance: Yes
- Can time out: Yes
- 8th-bit prefixing: Yes
- Repeat count prefixing: No
- Alternate block checks: No
- Terminal emulation: Yes, uses PC firmware (VT100)
- Communication settings: Yes; duplex, parity
- Transmit BREAK: Yes
- IBM communication: Yes
- Transaction logging: No
- Session logging (raw download): Yes
- Raw upload: No
- Act as server: No
- Talk to server: Yes; SEND, GET, FIN, BYE
- Advanced commands for servers: No
- Local file management: Yes
- Handle file attributes: No
- Command/init files: Yes
- Printer control: No
-
-
- CP/M-86 KERMIT DESCRIPTION
-
- Since Kermit-86 runs on a standalone micro, it is always in control of the
- screen -- it is always local. Thus, it always keeps the screen updated with
- the file name and the packet number, whether sending or receiving. Kermit-86
- is capable of timing out an input request, and can thus break deadlocks
- automatically. In most cases, however, this is not desirable because the KER-
- MIT on the other side is most likely better able to handle the timeouts; there-
- fore, Kermit-86's timer is normally not used.
-
- If despite the timeout capability, the transmission appears to be stuck (and
- you can tell that this has happened if the screen fails to change for a long
-
-
-
- while) you can type carriage return to have the micro do what it would have
- done on a timeout, namely NAK the expected packet to cause to foreign host to
- send it again (or, if the micro is sending, to retransmit the last packet).
- Micro/micro or micro/IBM-mainframe transfers could require this kind of manual
- intervention.
-
- File transfers may be interrupted in several ways.
-
- Control-C This will return you to Kermit-86 command level immediately, so
- that you can connect back to the remote system, or take any
- other desired action.
-
- Control-X When sending a file, this will terminate the sending of the
- current file with a signal to the KERMIT on the other side to
- discard what it got so far. If there are more files to be
- sent, KERMIT-86 will go on to the next one. When receiving a
- file, KERMIT-86 will send a signal to the remote KERMIT to stop
- sending this file. If the remote KERMIT understands this sig-
- nal (not all implementations of KERMIT do), it will comply,
- otherwise the file will keep coming. In either case, the
- remote KERMIT will go on to the next file in the group, if any.
-
- Control-Z Like Control-X, except if a file group is being transmitted,
- this will stop the transmission of the entire group. If only a
- single file is being transmitted, it works exactly like
- Control-X.
-
- Carriage Returns
- If you type carriage return repeatedly Kermit-86 will retry the
- current packet up to its retry limit (somewhere between 5 and
- 16 times) and then, if no valid response was received, return
- to Kermit-86 command level.
-
- When KERMIT-86 is started, it looks for the file KERMIT.INI. If found, it ex-
- ecutes KERMIT-86 commands from it before prompting you for commands. The
- KERMIT-86 prompt looks like this:
-
- Kermit-86 B3>
-
- in which "B" is your current default disk and "3" is the current default user
- number.
-
-
- 1.1. Kermit-86 Commands
-
- KERMIT-86 uses the DECSYSTEM-20 keyword style command language. Each keyword
- may be abbreviated to its minumum unique length. "?" may be typed to request a
- menu of the available options for the current field at any point in a command.
- ESC may be typed at any point in a command to fill out the current keyword or
- filename; if sufficient characters have not been typed to identify the current
- field uniquely, KERMIT-86 will sound a beep and allow you to continue from that
- point.
-
- CONNECT Establish a "virtual terminal" connection to any host that may be con-
- nected to the serial port, i.e. pass all typein to the serial port and
- display all input from the serial port on the screen, using the
-
-
-
- system's own built-in support for ANSI (VT100-like) screen control.
- When you issue the CONNECT command, the PC will print a message telling
- you how to get back by typing an an escape sequence, an uncommonly-used
- control character, normally CTRL-backslash, followed by a single letter
- "command".
-
- C Close Connection, return to Kermit-86> command level.
- ? List available single-character commands.
- B Send a BREAK signal.
- Q Quit logging the remote session.
- R Resume logging the remote session.
- L Toggle logging.
- ^\ (or whatever - a second copy of the escape character) Send the es-
- cape character itself to the remote host.
-
- SEND filespec
- Send file(s) specified by filespec to the remote Kermit, using the
- prevailing file mode (ASCII or BINARY; see SET). The filespec may con-
- tain CP/M wildcards.
-
- RECEIVE Receive file(s) from the remote Kermit. Store them under the names
- provided in the file headers supplied by the remote host. If the names
- aren't legal, use as many legal characters from the name as possible
- (see the description of SET FILE-WARNING below). If there's a con-
- flict, and FILE-WARNING is ON, warn the user and try to build a unique
- name for the file by adding "&" characters to the name. You may also
- provide an optional file name in the RECEIVE command; if you do, the
- incoming file will be stored under the name you specify. If more than
- one file arrives, only the first will be stored under the given name,
- unless you included wildcard characters in the RECEIVE filespec; in
- that case, the filespec will be used as a mask for incoming filenames.
- For instance, you told the remote Kermit to send *.ASM, you could tell
- KERMIT-86 to "receive *.A86", thereby changing the filetype of all the
- incoming files.
-
- GET filespec
- When Kermit-86 is talking to a Kermit Server on the host, you should
- use the GET command to request the server to send files to you, for ex-
- ample: get hlp:k*.hlp
-
- BYE When talking to a remote Kermit Server, this command shuts down the
- server and logs it out, and also exits from Kermit-86 to CP/M command
- level.
-
- LOGOUT Like BYE, but leaves you at Kermit-86 command level.
-
- FINISH Like LOGOUT, but shuts down the remote server without logging it out.
- Leaves you at Kermit-86 command level; a subsequent CONNECT command
- should put you back at host system command level.
-
- EXIT Exit from KERMIT-86 back to CP/M.
-
- QUIT Synonym for EXIT.
-
- SET parameter [value]
- Set the specified parameter to the specified value. Possible settings:
-
-
-
- BAUD Change the baud rate of the communications port. This command
- only works on some systems, and its actual operation can vary
- from system to system. Type SET BAUD followed by a question
- mark, and follow the directions. On systems that do not sup-
- port this command, you must set the port baud rate from CP/M or
- other setup mechanism outside of KERMIT-86.
-
- DEBUG ON or OFF. If ON, displays incoming and outbound packets
- during file transfer. OFF by default.
-
- DEFAULT-DISK disk/user
- Specify default disk and user number for subsequent file recep-
- tion and transmission. The specification following the command
- must be in one of the following forms:
-
- d: = go to drive d (A through P) without changing user
- u: = go to user u (0 through 15) without changing drive
- du: = go to drive d and user u
- : = go to the defaults when Kermit was loaded
-
- Whenever a drive is specified, even if it is the same as the
- current default drive, the drive is logged in so that disks can
- be swapped without exiting Kermit to type control-C. Kermit
- restores the original drive and user upon termination.
-
- ESCAPE Change the escape character for virtual terminal connections.
- Select a character in the control range that you will not be
- likely to need at the remote host; type the new character
- literally. Certain characters, like Control-X, cannot be
- specified.
-
- FILE-TYPE
- Tells KERMIT-86 what kind of file it is sending, so that KERMIT
- can correctly determine the end of the file. SET FILE BINARY
- means to send all the 128-byte blocks of the file, including
- the last block in its entirety; SET FILE ASCII is used for text
- files, and transmission stops when the first Control-Z is en-
- countered anywhere in the file (this is the CP/M convention for
- marking the end of a text file). If binary transmission is
- used on a text file, some extraneous characters (up to 127 of
- them) may appear at the end of the file on the target system.
- If ASCII transmission is used on a binary file, the entire file
- will not be sent if it happens to contain any data bytes that
- correspond to Control-Z. ASCII is the default.
-
- FLOW-CONTROL
- Select the desired type of flow control to be used on the com-
- munication line. The choices are NONE and XON/XOFF. XON/XOFF
- is the default. If the remote system is not full duplex or
- cannot do XON/XOFF, you should use NONE.
-
- IBM ON (or OFF)
- Allow the transfer of files to and from an IBM mainframe com-
- puter. This makes Kermit-86 wait for the IBM turnaround
- character (XON), ignore parity on input, add appropriate parity
- to output, and use local echoing during CONNECT. As dis-
-
-
-
- tributed, KERMIT-86 uses MARK parity for IBM communication. If
- you don't give this command, IBM mode is OFF. Since IBM VM/CMS
- KERMIT does not have timeout capability, SET IBM ON also turns
- on the timeout facility automatically, as if you had typed "SET
- TIMER ON".
-
- LOCAL-ECHO ON (or OFF)
- When you CONNECT to a remote host, you must set LOCAL-ECHO ON
- if the host is half duplex, OFF if full duplex. OFF by
- default.
-
- LOG Specify a log file on the current CP/M disk into which to
- record incoming characters during CONNECT. If the remote host
- can do XON/XOFF, then the log file will normally capture every
- character shown on the screen. When connected to the remote
- system, several single-character arguments to the connect es-
- cape character can be used to control logging -- Q (quit), R
- (resume), L (toggle). If you use R or L during connect without
- having previously specified a log file name, then KERMIT.LOG is
- used. An open log is closed when you escape back to the PC.
-
- PARITY Sets parity for outgoing characters to one of the following:
- NONE, SPACE, MARK, EVEN, or ODD. On input, if parity is NONE,
- then the 8th bit is kept (as data), otherwise it is stripped
- and ignored. The parity setting applies to both terminal con-
- nection and file transfer. If you set parity to anything other
- than NONE, Kermit-86 will attempt to use "8th bit prefixing" to
- transfer binary files. If the other KERMIT is also capable of
- 8th bit prefixing, then binary files can be transferred suc-
- cessfully; if not, the 8th bit of each data byte will be lost
- (you will see a warning on your screen if this happens).
-
- PORT Allows you to switch between different communication ports on
- the PC. This command is not available on all systems.
-
- TIMER ON (or OFF)
- Enable or disable the timeout facility. The timer is off by
- default, because in the normal case KERMIT-86 is communicating
- with a mainframe KERMIT that has its own timer. Mainframe KER-
- MIT timers tend to be more precise or adaptable to changing
- conditions. You should SET TIMER ON if you are communicating
- with another KERMIT that does not have a timer. You should SET
- TIMER OFF if you are communicating over a network with long
- delays.
-
- WARNING ON (or OFF)
- Warn user of filename conflicts when receiving files from
- remote host, and attempt to generate a unique name by adding
- "&" characters to the given name. OFF by default.
-
- SHOW Show the current settings of the SET parameters.
-
- TAKE Take KERMIT-86 commands from the specified file. The file should not
- contain any TAKE commands; nested command files do not work.
-
- LOCAL This is a prefix for local file management commands, to distinguish
-
-
-
- them from remote file management commands (which aren't implemented
- yet). The LOCAL prefix is optional; if left off, the commands will be
- performed locally.
-
- SPACE Show how much space is used and remaining on the cur-
- rent disk.
-
- DIRECTORY Provide a directory listing for the current disk, show-
- ing the name and size of each file. A filespec may be
- given to select only a certain file or wildcard file
- group.
-
- DELETE Delete the specified files from the current disk.
-
- TYPE A wildcard filespec is accepted and files displayed al-
- phabetically. The display is paged in Unix fashion
- with "--more--" displayed on the last line. Typein op-
- tions at that point can be obtained by hitting a '?'.
-
-
- 1.2. Installation:
-
- CP/M-86 KERMIT is broken up into several source modules:
-
- 86KERCMD.A86 Command parser
- 86KERFIL.A86 File handler
- 86KERIO.xxx System Dependent I/O
- 86KERMIT.A86 Main Program
- 86KERPRO.A86 Protocol Module
- 86KERTRM.A86 Terminal Emulation
- 86KERUTL.A86 Utilities
-
- The main program module, 86KERMIT.A86, contains INCLUDE directives for the
- other files. The 86KERIO module is stored with suffixes that denote the
- machine for which the program is being built -- RB for Rainbow, APC for NEC
- APC. The program may be built on the CP/M-86 system by obtaining all the
- source files listed above, storing them on the current disk with the names in-
- dicated, renaming the appropriate 86KERIO.xxx file to be 86KERIO.A86, and then
- doing:
-
- ASM86 86KERMIT $PZ (takes about 6 minutes on the Rainbow)
- GENCMD 86KERMIT (takes less than a minute)
-
- and, if desired,
-
- REN KERMIT.CMD=86KERMIT.CMD
-
-
- 1.3. DEC Rainbow 100 Support
-
- KERMIT-86 runs on the DEC Rainbow 100 or 100+ under CP/M-86/80, version 1 or 2,
- on the 8088 side. It uses the built-in firmware to emulate a VT102 ANSI ter-
- minal during CONNECT, and runs well at speeds up to 9600 baud.
-
- You should be able to download the program using the old KERMIT on the Z80 side
- (Rainbow Kermit, VT180 Kermit, or generic CP/M-80 Kermit will do the job, but
-
-
-
- only under DEC CP/M-86/80 version 1.0), or an earlier version of KERMIT-86.
-
- If you don't have an earlier version of KERMIT, then follow the directions for
- installing KERMIT-80 (yes, KERMIT-80) in the KERMIT-80 section of the KERMIT
- User Guide, but send the KERMIT-86 hex file instead. This works because the
- Rainbow can run CP/M-80 programs like DDT.
-
- Another way to get KERMIT onto your Rainbow for the first time would be from a
- DEC VT-180 diskette. A VT-180 can use its own KERMIT to load RBKERMIT onto its
- disk, which can then be read directly by a Rainbow. Also, note that VT-180
- KERMIT-80 can actually run on the Rainbow on the Z80 side under DEC CP/M-86/80
- version 1 (but not version 2 or higher), at speeds of 1800 baud or lower.
-
-
- 1.4. NEC Advanced Personal Computer Support
-
- (Contributed by Ron Blanford, University of Washington)
-
- Currently only the standard serial port is supported, and not the H14 auxiliary
- port. The SET PORT command is not implemented.
-
- While in Kermit's terminal emulation mode, local commands are initiated by a
- two-character sequence consisting of the "escape character" followed by one
- other character identifying the command. (Make the second character a '?' to
- see a list of the valid commands.) As distributed, the standard Kermit-86 uses
- the control-backslash character as the escape character in terminal mode. The
- trouble is that the CP/M-86 BIOS in the APC ignores a keyboard entry of
- Control-\ (i.e. holding down the CTRL key while striking the '\' key), making
- it difficult (impossible) to use this method to get out of terminal mode.
-
- One solution is to perform a "SET ESCAPE ^" command before entering terminal
- mode to change the escape character to a caret (or any other character the APC
- keyboard will generate). This command could be placed in your KERMIT.INI file
- for automatic execution every time Kermit is started.
-
- The simpler solution is to realize that the character code for a Control-\ is a
- hexadecimal 1C, and that this is the code generated by the INS key on the
- numeric keypad. Once you can remember that every reference to Control-\ should
- be interpreted as a reference to the INS key, this is actually easier to use
- than the two-key Control-\ sequence.
-
- In the standard CP/M-86 BIOS, the unshifted DEL key generates a Control-X
- character (hexadecimal 18). This is the CP/M command to erase the current in-
- put line, and is very useful for local processing. Most mainframes do not use
- the Control-X character at all, so it becomes much less useful during terminal
- emulation. The DEL character (hexadecimal 7F), on the other hand, is often
- used by mainframes and can only be generated on the APC by holding down the
- SHIFT key while striking the DEL key (this capability is not mentioned anywhere
- in the documentation).
-
- Because the Control-X character is so seldom used while the DEL character is
- commonly used, the initialization procedure in Kermit-86 modifies the CP/M-86
- BIOS so that the DEL key generates the DEL character whether shifted or not.
- Control-X can still be generated if necessary by holding down the CTRL key
- while striking the 'X' key. The CP/M-86 BIOS is returned to its original state
- when Kermit terminates.
-
-
-
- The APC uses escape sequences which have been standardized by the American Na-
- tional Standards Institute (ANSI) to control cursor movement, screen erasing,
- and character attribute manipulation. Perhaps the best-known other terminal
- which follows ANSI guidelines is the DEC VT100. The APC only recognizes a few
- of the more important ANSI commands, and not the complete set which the VT100
- supports.
-
- The ANSI/VT100 features that the NEC APC supports are:
-
- - direct cursor addressing (by row and column)
- - relative cursor addressing (up, down, left, right)
- - line erasing (cursor to end, beginning to cursor, entire line)
- - screen erasing (cursor to end, beginning to cursor, entire screen)
- - character attributes (underline, reverse video, blink, but not bold)
-
- In addition, the first four grey function keys (unshifted) generate the escape
- sequences associated with PF1 through PF4 on the VT100 keyboard. The arrow
- keys and numeric keypad DO NOT generate the corresponding VT100 sequences.
-
- These functions are enough to support simple command line editing on most sys-
- tems, and allow mailers or paged file display programs to clear the screen be-
- fore each display. Underlining and reverse video are also useful in some ap-
- plications. This is not enough to support the more sophisticated screen con-
- trol required by screen editors such as EMACS or KED. In addition, due to a
- bug in the implementation of the CP/M-86 BIOS, the sequence ordinarily used to
- home the cursor (esc [ H) does not work correctly; a patch for CP/M to correct
- this problem is distributed with APC Kermit-86.
-
-
-
- Index
-
- APC 6
-
- Baud 2
- BYE 2
-
- Connect 1
-
- Debugging 3
- DEC Rainbow 5
-
- Eighth-Bit Prefix 4
- Escape Character 1, 3
-
- File-Warning 2
- FINISH 2
- Flow Control 3
-
- GET 2
-
- IBM 3
-
- Local 0
- Local-Echo 4
- LOG 4
- LOGOUT 2
-
- NAK 1
- NEC Advanced Personal Computer
- 6
-
- Parity 4
-
- Rainbow 100 5
- RECEIVE 2
-
- SEND 2
- SET 2
- SHOW 4
-
- TAKE 4
- Timeout 0, 1
- TIMER 4
-
- Virtual Terminal 1
-
- Warning 4
-
-
-
- Table of Contents
-
- 1. CP/M-86 KERMIT 0
-
- 1.1. Kermit-86 Commands 1
- 1.2. Installation: 5
- 1.3. DEC Rainbow 100 Support 5
- 1.4. NEC Advanced Personal Computer Support 6
-
- Index i
-